<!DOCTYPE html>
<html lang="zh-CN">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link type="text/css" rel="stylesheet" href="styles.css">
  <script type="text/javascript" src="config.js"></script>
</head>

<body>
  <h1 class="h">4. 结构化数组</h1>
  <p>用于处理类似表格的异质数据，每个“列”可以有不同的数据类型。</p>
  <pre><code># 定义数据类型：这是一个包含‘name’（字符串，最大长度10）、‘age’（整型）、‘height’（浮点型）的结构
dtype = [('name', 'U10'), ('age', 'i4'), ('height', 'f8')]

# 创建结构化数组
data = np.array([('Alice', 25, 165.2), ('Bob', 30, 180.1), ('Cathy', 28, 175.0)], dtype=dtype)
print(data)

# 按字段名（列名）访问
print(data['name']) # ['Alice' 'Bob' 'Cathy']
print(data['age']) # [25 30 28]
print(data['height'].mean()) # 计算平均身高

# 按索引访问（行）
print(data[0]) # ('Alice', 25, 165.2)
print(data[-1]['name']) # 'Cathy'

# 条件筛选
print(data[data['age'] > 27]['name']) # 获取年龄大于27的人的名字 -> ['Bob' 'Cathy']</code></pre>
</body>

</html>